<?php

  define("Puerto", "11000");
  define("SoHost","127.0.0.1");
  
Function RecuperarVar($Nemos){
    foreach($Nemos as $key => $valor){
            if($key <> '0'){
                $Cadena .= $valor.";";
                $ListVar[$valor] = 0;
            }
    }


  // DEFINICIÓN DE VARIABLES 
  // CREANDO EL SOCKET: (IP PROTOCOL[IPV4], TYPE SOCKET[TCP], PROTOCOL[TCP]) 
  $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); 
  if($socket != false){
      $conexion = socket_connect($socket, SoHost, Puerto);   
      if($conexion){
        // DEFINICIÓN DE TRAMA A ENVIAR 
        $buffer = "7898;GEN;$Cadena<EOF>";
        // ESCRIBIENDO EL BUFFER EN EL SOCKET 
        socket_write($socket, $buffer); 
        
        // LEYENDO RESPUESTA DEL SOCKET 
        $salida = socket_read($socket, 1024);
        // CERRANDO LA CONEXIÓN 
        $SockectOk = TRUE;
      }else{  $SockectOk = FALSE;}
  }else{
      $SockectOk = FALSE;
      socket_close($socket); 
      //print_r($salida);
  }
  
  //Asignar valores a variables
  $MVar = explode(";", $salida);
  if($MVar[0] <> "7898"){ $SockectOk = FALSE;}
      //print_r($MVar);
      $i = 1;        
      foreach($ListVar as $c=>$v){
          if($SockectOk){
              $ListVar[$c] = $MVar[$i];
          }else{
              $ListVar[$c] = 0;
          }
            $i++;
      }
      //$ListVar["Estado"] = $MVar[$i];
      Return $ListVar;
  
  
}//Fin fuction

//GENERACION DE DATOS GRAFICA
//1. Extraemos nemos de url
  $i=0;
  $Nemos = Array();
  $Escala = Array();
  foreach ($_GET as $key=> $value) {
    $Nemos[$i] = $key;
    $Escala[$i] = $value;
    $i++;
  }
$Count = $_GET["count"]+1;

if ($Count > 60){$Count = 1;}

$LabelEjeX;
If ($Count == 60){$LabelEjeX = "I";}else{$LabelEjeX = "";}

//2. Pas/amos array a funcion para que recupere valores por sockect
 $V = RecuperarVar($Nemos);
//echo "<br>";
//print_r ($V);
//Preparamos la url para la siguiente peticion con los valores actuales
$GetUrl="MyData.php?count="."$Count";
$CadenaRow;
$i=1;
foreach ($V as $key => $valor){
    $EscalaKey = $Escala[$i];
    $GetUrl .= "&".$key."="."$EscalaKey";
    $CadenaRow .= "<row>";
    $CadenaRow .=   "<number>".($valor/$EscalaKey)."</number>";
    $CadenaRow .= "</row>";
    $i++;
}
//echo "<br>$GetUrl<br>"; 
 
//Imprimimos los datos para pasarlos al grafico.

print "<chart>";
print "   <chart_data>";
print "      <row>";
print "         <string>".$LabelEjeX."</string>";
print "      </row>";
print $CadenaRow;
print "   </chart_data>";


if($count > 59){$count = 0;}
//schedule for the next update
?>

<?php
print "<chart_pref line_thickness='2' point_shape='none' fill_shape='false' />";
//Span es el numero de registros que mostrara la grafica son 600 a 1 seg unos 10 minutos
print "   <update url='".$GetUrl."' delay='1' mode='stream_category' span='600' /> ";

print "</chart>";

?>